positions_old = {}
positions_new = {}
olds = []
news = []
q = int(input())
for vez in range(q):
old, new = input().split()
if old in positions_new:
position = positions_new[old]
news[position] = new
del positions_new[old]
positions_new[new] = position
else:
position = len(olds)
olds.append(old)
news.append(new)
positions_old[old] = position
positions_new[new] = position
num_users = len(olds)
print(num_users)
for position in range(num_users):
print(f'{olds[position]} {news[position]}')
1635A - Min Or Sum | 474A - Keyboard |
1343A - Candies | 1343C - Alternating Subsequence |
1325A - EhAb AnD gCd | 746A - Compote |
318A - Even Odds | 550B - Preparing Olympiad |
939B - Hamster Farm | 732A - Buy a Shovel |
1220C - Substring Game in the Lesson | 452A - Eevee |
1647B - Madoka and the Elegant Gift | 1408A - Circle Coloring |
766B - Mahmoud and a Triangle | 1618C - Paint the Array |
469A - I Wanna Be the Guy | 1294A - Collecting Coins |
1227A - Math Problem | 349A - Cinema Line |
47A - Triangular numbers | 1516B - AGAGA XOOORRR |
1515A - Phoenix and Gold | 1515B - Phoenix and Puzzle |
155A - I_love_username | 49A - Sleuth |
1541A - Pretty Permutations | 1632C - Strange Test |
673A - Bear and Game | 276A - Lunch Rush |